--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / outboundSendQueue.js
Displaying Raw • Download
meshchatx/src/frontend/js/outboundSendQueue.js f84afa5d778c0141fcf60b93b2d304e57769f16c (f84afa5d) Text, 809 B
T8b949e/**
* Serial outbound job queue: one job runs at a time so later messages reuse
* the route established while sending earlier ones to the same peer.
*/
Tff7b72export Tff7b72function Te6edf3createOutboundQueueTb4b4b4(Te6edf3processJobTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3queue Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72let Te6edf3running Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72async Tff7b72function Te6edf3runTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3runningTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3running Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72while Tb4b4b4(Te6edf3queueTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3job Tff7b72= Te6edf3queueTb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Te6edf3processJobTb4b4b4(Te6edf3jobTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3running Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3enqueueTb4b4b4(Te6edf3jobTb4b4b4) Tb4b4b4{
Te6edf3queueTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3jobTb4b4b4)Tb4b4b4;
Tff7b72void Te6edf3runTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3get Te6edf3lengthTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3queueTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3get Te6edf3isRunningTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3runningTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────